// 引入express模块
const express = require('express')
// 得到应用实例
const app = express()
// 绑定端口
app.listen(3000, '0.0.0.0', () => console.log('http://localhost:3000'))

// 静态服务器
app.use(express.static('./public'))

// post数据接受处理
// application/x-www-form-urlencoded
app.use(express.urlencoded({ extended: false }))
// application/json 
app.use(express.json())


let users = [
  { id: 1, name: '张三', age: 10 },
  { id: 2, name: '李四', age: 11 },
  { id: 3, name: '王五', age: 12 },
  { id: 4, name: '赵六', age: 13 }
]

// 用户列表数据
app.get('/users', (req, res) => {
  res.send(users)
})

// 根据用户id返回对应用户信息
app.get('/users/:id', (req, res) => {
  let data = users.find(({ id }) => id == req.params.id)
  res.send(data)
})

// 添加用户
app.post('/users', (req, res) => {
  let data = { id: Date.now(), ...req.body }
  users.push(data)
  res.send(data)
})

// 根据用户id去修改对应用户信息
app.put('/users/:id', (req, res) => {
  let index = users.findIndex(({ id }) => id == req.params.id)
  if (index < 0) {
    res.send({ code: -100 })
    return;
  }
  //  { id: 2 ,name: '李四1', age: 22},
  users[index] = { ...users[index], ...req.body }
  res.send(users[index])
})

// 根据用户id删除对应用户
app.delete('/users/:id', (req, res) => {
  users = users.filter(({ id }) => id != req.params.id)
  res.send(users)
})

// ...   模块化
// 功能拆分 
// 用户
// 新闻